package com.foldingleaf.withdraw.mapper;

import java.util.List;
import com.foldingleaf.withdraw.domain.WithdrawRecord;
import com.foldingleaf.withdraw.domain.UserBankCard;

/**
 * 提现记录Mapper接口
 * 
 * @author ajian
 * @date 2022-06-22
 */
public interface WithdrawRecordMapper 
{
    /**
     * 查询提现记录
     * 
     * @param recordId 提现记录主键
     * @return 提现记录
     */
    public WithdrawRecord selectWithdrawRecordByRecordId(Long recordId);

    /**
     * 查询提现记录列表
     * 
     * @param withdrawRecord 提现记录
     * @return 提现记录集合
     */
    public List<WithdrawRecord> selectWithdrawRecordList(WithdrawRecord withdrawRecord);

    /**
     * 新增提现记录
     * 
     * @param withdrawRecord 提现记录
     * @return 结果
     */
    public int insertWithdrawRecord(WithdrawRecord withdrawRecord);

    /**
     * 修改提现记录
     * 
     * @param withdrawRecord 提现记录
     * @return 结果
     */
    public int updateWithdrawRecord(WithdrawRecord withdrawRecord);

    /**
     * 删除提现记录
     * 
     * @param recordId 提现记录主键
     * @return 结果
     */
    public int deleteWithdrawRecordByRecordId(Long recordId);

    /**
     * 批量删除提现记录
     * 
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWithdrawRecordByRecordIds(Long[] recordIds);

    /**
     * 批量删除用户银行卡绑定
     * 
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserBankCardByUserIds(Long[] recordIds);
    
    /**
     * 批量新增用户银行卡绑定
     * 
     * @param userBankCardList 用户银行卡绑定列表
     * @return 结果
     */
    public int batchUserBankCard(List<UserBankCard> userBankCardList);
    

    /**
     * 通过提现记录主键删除用户银行卡绑定信息
     * 
     * @param recordId 提现记录ID
     * @return 结果
     */
    public int deleteUserBankCardByUserId(Long recordId);
}
